package com.wqr.it.ecwdr.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.wqr.it.ecwdr.vo.PageVO;
import com.wqr.it.ecwdr.vo.ProductImgUrlVO;
import com.wqr.it.ecwdr.vo.ProductItemAddInfoVO;
import com.wqr.it.ecwdr.vo.ProductItemVO;
import com.wqr.it.ecwdr.vo.ProductSalesInfoVO;
import com.wqr.it.ecwdr.vo.SallerVO;

/**
 * @author adinos
 *
 */
@Mapper
public interface IProductItemDao {
	
	public void updateProductBaseInfo (ProductItemVO productItemVO);
	
	public void insertProduct (ProductItemVO productItemVO);
	
	public void insertProductBaseInfo (ProductItemVO productItemVO);
	
	public void insertProductTechInfo (ProductItemVO productItemVO);
	
	public void insertProductDescription (ProductItemVO productItemVO);
	
	public void insertProductViewInfo (ProductItemVO productItemVO);
	
	public void insertProductItemDuplicate (ProductSalesInfoVO productSalesInfoVO);
	
	public void deleteProductItem (ProductItemVO productItemVO);
	
	public ProductItemVO findProductItem(ProductItemVO productItemVO);
	
	public ProductItemVO findShortProductItem(ProductItemVO productItemVO);
	/**
	 * 获取产品id
	 * @param ProductItemVO 产品基本信息
	 */
	public long getProductId(ProductItemVO productItemVO);
	
	public List<ProductItemVO> findProductItemList(ProductItemVO productItemVO, PageVO pageVO);
	
	public List<ProductItemVO> findShortProductItemList(ProductItemVO productItemVO, PageVO pageVO);
	
	public List<ProductItemVO> findFavProductItemList(ProductItemVO productItemVO, PageVO pageVO);

	public List<ProductItemVO> findSallerProductItemList(SallerVO sallerVO, PageVO pageVO);

	public ProductSalesInfoVO getProductItemDuplicate(ProductSalesInfoVO productSalesInfoVO);
	
	public List<ProductSalesInfoVO> getProductItemDuplicateList(ProductSalesInfoVO productSalesInfoVO, PageVO pageVO);
	
	public void activeProductItemDuplicate (ProductSalesInfoVO productSalesInfoVO);
	
	public void inactiveProductItemDuplicate (ProductItemVO productItemVO);
	
	public List<ProductItemVO> findFavSallerProductItem(long followToken, PageVO pageVO);

	public void inactiveProductItemDuplicateAll(ProductSalesInfoVO vo);

	public ProductItemVO findProductItemByNumber(String number, int countryId, int sourceId);

	public ProductItemAddInfoVO getAddInfo(long id);

	public void updateAddInfo(ProductItemAddInfoVO productItemAddInfoVO);

	public void insertAddInfo(ProductItemAddInfoVO productItemAddInfoVO);

	public List<ProductItemVO> findShortFavProductItemList(long followToken);

	public ProductImgUrlVO getImgUrl(long itemId);

	public void insertImgUrl(ProductImgUrlVO imgUrlVO);
	
	public void updateImgUrl(ProductImgUrlVO imgUrlVO);

	public void updateProduct(ProductItemVO productItemVO);

	public void updateProductDescription(ProductItemVO productItemVO);
	
	public void updateProductViewInfo(ProductItemVO productItemVO);

	public String getProductUrlById(Long id);

	public ProductItemVO findFullProductItem(ProductItemVO productItemVO);

	public long getProductBaseInfoId(ProductItemVO searchVO);

	public void updateFavSallerProduct();
}
